<?php

class Util {
    /*
     * Metodo para mostrar uma mensagem em forma de alerta na tela
     */

    public static function Mensagem($texto) {
        $texto = utf8_decode($texto);
        echo "<script>alert('$texto');</script>";
    }

    /*
     * Metodo para redirecionar para outra pagina (sera executado
     * antes de qualquer js)
     */

    public static function Header($url) {
        header("Location: $url");
    }

    /*
     * Metodo para redirecionar com js, o redirecionamento 
     * vai ocorrer apos o carregamento da pagina
     */

    public static function Redireciona($url) {
        echo "<script>window.location='$url'</script>";
    }

    /*
     * Metodo para converter a data para o formato dd/mm/yyyy
     */

    public static function dataToBR($data) {
        $dataPronta = implode("/", array_reverse(explode("-", $data)));
        return $dataPronta;
    }

    /*
     * Metodo para converter a data para o formato yyyy-mm-dd
     */

    public static function dataToMysql($data) {
        $dataPronta = implode("-", array_reverse(explode("/", $data)));
        return $dataPronta;
    }

    /*
     * Metodo para deletar o arquivo passando o caminho e o nome do arquivo 
     */

    public static function Deleta_arquivo($caminho, $nome_arquivo) {
        if (unlink($caminho . $nome_arquivo)) {
            return true;
        } else {
            return false;
        }
    }

    /*
     *  Metodo que retira os caracteres especiais. 
     */

    public static function clearSpecialChars($str) {
        $str = utf8_decode($str);
        $clear_array =
                array("á" => "a", "é" => "e", "í" => "i", "ó" => "o", "ú" => "u", "à" => "a", "è" => "e", "ì" => "i", "ò" => "o", "ù" => "u",
                    "ã" => "a", "õ" => "o", "â" => "a", "ê" => "e", "î" => "i", "ô" => "o", "û" => "u", "," => "", "!" => "", "#" => "", "%" => "",
                    "¬" => "", "{" => "", "}" => "", "^" => "", "´" => "", "`" => "", "" => "", "/" => "", ";" => "", ":" => "", "?" => "", "¹" => "1",
                    "²" => "2", "³" => "3", "ª" => "a", "º" => "o", "ç" => "c", "ü" => "u", "ä" => "a", "ï" => "i", "ö" => "o", "ë" => "e", "$" => "s",
                    "ÿ" => "y", "w" => "w", "<" => "", ">" => "", "[" => "", "]" => "", "&" => "e", " " => "", "á" => "a", "Á" => "A", "é" => "e",
                    "É" => "E", "í" => "i", "Í" => "i", "ó" => "o", "Ó" => "O", "ú" => "u", "Ú" => "U", "â" => "a", "Â" => "A", "ê" => "e",
                    "Ê" => "E", "ô" => "o", "Ô" => "O", "à" => "a", "À" => "A", "ç" => "c", "Ç" => "C", "ã" => "a", "Ã" => "A", "õ" => "o", "Õ" => "o");

        foreach ($clear_array as $key => $val) {
            $str = str_replace(utf8_decode($key), utf8_decode($val), $str);
        }
        return $str;
    }

    /*
     * Metodo de upload de arquivo.
     */

    public static function upload_arquivo($file, $codcliente, $caminho, $tipo) {
        if (!empty($file["name"])) {
            $arquivoNomeTemp = $file["tmp_name"];
            $dados = true;
        } else {
            $dados = false;
        }
        //$arquivoNome = Util::clearSpecialChars(utf8_encode($arquivoNome)); // retira os caracteres especiais. 
        $arquivoNome = $codcliente . mt_rand(00000, 9999) . "." . $tipo;
        $caminho = $caminho . $arquivoNome;
        if ($dados == true) {
            if (move_uploaded_file($arquivoNomeTemp, $caminho)) {
                return $arquivoNome;
            } else {
                return false; //Arquivo não movido
            }
        } else if ($dados == false) {
            return false; // se o arquivo estiver vazio
        }
    }

    public static function retornaTipo($tipo) {
        $conn = new DB_Config();
        $query = ("SELECT codigo FROM tipo WHERE tipo = '$tipo'");
        list($codtipo) = $conn->Query($query)->FetchRow();
        return $codtipo;
    }

    public static function ultimaVisita() {
        $conn = new DB_Config();
        $query = ("SELECT MAX(codigo) FROM visitas");
        list($codvisita) = $conn->Query($query)->FetchRow();
        return $codvisita;
    }

    public static function retornaNivel($codtipo) {
        $conn = new DB_Config();
        $query = ("SELECT nivel FROM tipo WHERE codigo = '$codtipo'");
        list($nivel) = $conn->Query($query)->FetchRow();
        return $nivel;
    }

    public static function InsereArquivo($arquivo, $codvisita, $tipo) {
        $conn = new DB_Config();
        $query = ("
            INSERT INTO arquivos 
            SET
            arquivo = '" . $arquivo . "',
            codvisita = '" . $codvisita . "',
            tipo = '" . $tipo . "'
            ");
        if ($conn->Query($query)) {
            return true;
        } else {
            return false;
        }
    }

    public static function RetornaArquivos($codvisita, $tipo) {
        $conn = new DB_Config();
        $query = ("SELECT * FROM arquivos WHERE codvisita = '$codvisita' AND tipo = '$tipo'");
        $lista = array();
        
        if($conn->Query($query)){
        $resultado = $conn->Query($query);
        while ($dados = $resultado->FetchObject()) {
            $lista[] = $dados;
        }
        return $lista;
        }else{
            return false;
        }
        
    }

}

?>
